在系列文章開始時,我們提到 Combine 的 3 個主角:
首先解釋 Combine 的 Pattern。
透過 UML 的事件圖,可以理解 Subscriber 與 Publisher 的互動流程,先建立 Subscription,要求與發送元素,Publisher 發送終止。
透過 Operator 將元素轉換,是不是和 Code 很像?
使用 Combine 的決策方式,這部分用 Future 是為了保留失敗情形,如果確定沒有失敗,則可以用 Just。
FlatMap,最難的 Operator,在這個 Session 中先提出錯誤處理(catch),再帶出型別轉化問題並接著解釋 FlatMap 的解釋,不過聽歸聽,還是需要實際在 code 裡面對型別會比較理解。
解釋所謂的 Subscription 與 Completion 在事件流個個數,前者必定會有一次,後者可能有至多一個或完全沒有(被 cancel)。
解釋Subject 的觀察者模式實作,與 Subject 的兩種類型:Passthrough 與 CurrentValue。
在 Session 的後半部都在解釋 Combine 的應用,這張圖解釋了 Combine 的事件流程,在 15 分鐘內,解釋了如何理解事件的來龍去脈,最後以 Apple 一貫的方塊 UML 解釋,讓事件流一目了然!